O que é o AJAX?

A sigla AJAX Significa: JavaScript assíncrono e XML. Mas que diabos significa isso ?

Por natureza as páginas web são exibidas num browser que entende HTML, CSS e JavaScript. Sendo assim, o browser tem a capacidade de responder a alguns eventos, como o clique de um botão ou o redimensionamento da tela. Continuando com o exemplo do botão este ao ser clicado gera um evento chamado de 'click' que pode ser interceptado por uma funcionalidade do JavaScript. Essa é a base do AJAX, o browser dispara um evento que é interceptado pelo JavaScript ou AJAX.


Em primeiro lugar temos que lembrar como funciona o processamento de uma página na web.

Em segundo lugar precisamos entender o significado de requisições síncronas e assincronas.

Processo Síncrono

Um processo sincrono significa que o processo faz uma requisição ao servidor e aguarda a resposta do servidor até que o recurso esteje disponível, como a transferência de uma imagem ou o reload de uma página.
Importante: Enquanto estiver carregando a página o operador pode apenas esperar, a página fica travada ou inacessível até sua carga completa.

Processo Assíncrono

Um processo Assincrono significa que ao fazer o request do recurso o browser NÃO aguarda a resposta do servidor ou o término do processo para processar, ou seja, ele dispara o processo e assim que receber o retorno, ou seja, ficar pronto ele ( o browser ) recebe a notificação e ai processa as informações. Com isto o usuário pode interagir com o browser como, por exemplo, ir para outra página.

O AJAX

O AJAX NÃO é uma linguagem de programação mas sim um recurso nativo do browser que foi colocado a disposição dos programadores pelo DOM/XML do web Browser.
E não é coisa nova não, desde o IE4 já estava disponível mas foi pouco utilizado.
Esse recurso nada mais é que o XMLHttpRequest ou a solicitação de uma página para o servidor web.
Portanto, para usar o AJAX não é necessário nenhum recurso externo ao browser exceto um servidor para enviar as requisições e receber os dados.

O AJAX apenas usa uma combinação :
• Um objeto XMLHttpRequest interno do navegador para fazer um request e solicitar dados a um servidor da web.
• Usa o JavaScript e HTML DOM para exibir a resposta do servidor e usar os dados no documento corrente, tipo, innerHTML.

A sigla AJAX pode ser meio enganadora porque menciona XML mas os aplicativos AJAX, além do XML, podem transportar dados como texto sem formatação ou texto JSON ou qualquer resposta que o servidor possa enviar em qualquer formato.

O AJAX permite que as páginas da web sejam atualizadas de forma assíncrona, trocando dados com um servidor da web nos bastidores. Isso significa que é possível atualizar partes de uma página da web, sem recarregar a página inteira.
Isso fica evidente ao notar-se que a url não muda apesar do conteúdo da página ter mudado.

Como utilizar o AJAX

Portanto, o AJAX é sinônimo de request assincrono via XMLHttpRequest que é um recurso nativo do browser.
Contudo, podemos fazer seguintes métodos de requisição / request assincronos ao servidos:
GET : Quando solicitamos informações ao servidor. Retorna apenas dados.
POST : Quando enviamos dados ao servidor.
PUT : Quando atualizamos dados no servidor, ou seja, os dados anteriores são apagados.
DELETE : Quando desejamos eliminar informações do servidor.
HEAD : O método HEAD solicita uma resposta de forma idêntica ao método GET, porém sem conter o corpo da resposta.
CONNECT : O método CONNECT estabelece um túnel para o servidor identificado pelo recurso de destino.
OPTIONS : O método OPTIONS é usado para descrever as opções de comunicação com o recurso de destino.
TRACE : O método TRACE executa um teste de chamada loop-back junto com o caminho para o recurso de destino.
PATCH : O método PATCH é utilizado para aplicar modificações parciais em um recurso.

Nota : Ao enviar as requisições o servidor sempre retorna um status da tarefa. Pode ser OK e, neste caso, o servidor retorna informações. Contudo ele também pode retornar o status de erro como 200 que significa OK, 404-não encotrado(not found) ou 501-Bad gateway (erro de servidor).